home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-20
/
caty16.zip
/
CATY.GLO
< prev
next >
Wrap
Text File
|
1993-02-02
|
11KB
|
161 lines
(*═══════════════════════════════════════════════════════════════════════*)
(* Program: CATY.GLO - Global declarations (Part of CATYxxx.PAS) *)
(* Author: Donald J. Wilke, N3HGQ *)
(* Start Date: July 12, 1989 *)
(* Last Update: January 12, 1992 *)
(* Purpose: Control program for Yaesu FT-767GX Transceiver. *)
(* Usage: Compile to .EXE file using Turbo Pascal Version 5.0 or *)
(* later, and execute the .EXE file by typing CATYxxx at *)
(* the DOS prompt. (See CATYxxx.DOC) *)
(* Needs: CATY .GLO, CATYGLO .PAS, CATYUTIL.PAS, CATYDISP.PAS, *)
(* CATYRTC.PAS, CATYMVFO.PAS, CATYINST.PAS, CATYTERM.PAS, *)
(* CATYGLO.PAS, CATYCOMM.PAS, Y767xxx .DAT, Y767xxx .MEM. *)
(* Remarks: Requires RS-232 interface between computer & FT-767GX. *)
(*═══════════════════════════════════════════════════════════════════════*)
CONST (* Compile-time conditionals, set to match configuration *)
Version : STRING[14] = 'Version 1.60 '; (* Evolutionary record *)
Credit : STRING[9] = ' by N3HGQ';
Rig : STRING[13] = 'for FT-767GX';
Test : BOOLEAN = FALSE; (* True if testing w/o comport *)
OneWay : BOOLEAN = FALSE; (* True for no echo checking *)
SetSel : BOOLEAN = TRUE; (* False to simulate KBD input *)
ToneEnc : BOOLEAN = TRUE; (* True if CTCSS board installed *)
MARS : BOOLEAN = FALSE; (* True if MARS mods installed *)
Module6 : BOOLEAN = TRUE; (* True if 6M module installed *)
Module2 : BOOLEAN = TRUE; (* True if 2M module installed *)
Module70A : BOOLEAN = FALSE; (* True if 430-440 mod installed *)
Module70B : BOOLEAN = TRUE; (* True if 440-450 mod installed *)
TNC : BOOLEAN = TRUE; (* True if TNC installed *)
RParity : INTEGER = $00; (* 0 = No parity for Yaesu *)
RDataBits : INTEGER = $03; (* 3 = Yaesu uses 8 bits per char *)
RStopBits : INTEGER = $04; (* 4 = Yaesu uses 2 stop bits *)
TParity : INTEGER = $00; (* 0 = No parity for TNC *)
TDataBits : INTEGER = $03; (* 3 = TNC uses 8 bits per char *)
TStopBits : INTEGER = $00; (* 0 = TNC uses 1 stop bit *)
DLAB : INTEGER = $80; (* 8250 Divisor Latch Access Bit *)
DTR : INTEGER = $01; (* Value for Data Terminal Ready *)
RTS : INTEGER = $02; (* value for Ready To Send *)
OUT2 : INTEGER = $08; (* Bit that enables adapter ints *)
OCW1 : INTEGER = $21; (* 8259 Operation Control Word 1 *)
OCW2 : INTEGER = $20; (* 8259 Operation Control Word 2 *)
IRQT : INTEGER = $01; (* Mask to turn Timer ints on/off *)
TimerInt : INTEGER = $1C; (* Timer Control interrupt # *)
TimeZone : INTEGER = 5; (* Hours behind UTC *)
TICD : INTEGER = 12; (* Intercharacter delay, TNC port *)
RICD : INTEGER = 20; (* Intercharacter delay, Radio port *)
ClockFlag : BOOLEAN = TRUE; (* False disables clock during Comm *)
FreqErrorFlag: BOOLEAN = FALSE; (* Freq out of range flag *)
Nul : CHAR = CHR(0); (* Used to build null strings *)
TZ : STRING = ' EST ';(* Default Timezone *)
RadioRate : WORD = 24; (* Value for 4800 baud operation *)
Baud2400 : WORD = 48; (* Value for 2400 baud operation *)
TermRate : WORD = 96; (* Value for 1200 baud operation *)
Baud300 : WORD = 384; (* Value for 300 baud operation *)
ScreenSeg : WORD = 0000; (* Storage for video memory addr *)
SaveCSeg : WORD = 0000; (* Storage for Code segment addr *)
(* Define foreground, background colors, character attributes *)
DFG : INTEGER = 3; (* Default FG color - CYAN *)
DBG : INTEGER = 0; (* Default BG color - BLACK *)
PFG : INTEGER = 14; (* Parameter FG color - YELLOW *)
RFG : INTEGER = 2; (* Requested param FG color - GRN *)
SFG : INTEGER = 15; (* Status FG color - HI WHITE *)
EFG : INTEGER = 31; (* Error FG color - HI WHT + BLNK *)
EBG : INTEGER = 4; (* Error BG color - RED *)
SBA : INTEGER = 4; (* Border FG/BG attrib - RED/BLK *)
CLA : INTEGER = 31; (* Clock FG/BG attr - HI WHT/BLUE *)
FKA : INTEGER = 31; (* FKey FG/BG attr - HI WHT/BLUE *)
BFG : INTEGER = 0; (* Select bar FG color - BLK *)
BBG : INTEGER = 15; (* Select bar BG color - WHT *)
BLNK : INTEGER = 128; (* Add to attrib for blink *)
TRFG : INTEGER = 2; (* Terminal RCV FG color - GRN *)
TTFG : INTEGER = 7; (* Terminal XMIT FG color - WHT *)
(* Define the FT-767 Instruction code set *)
CatOn : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0);
CatOff : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(1)+CHR(0);
Check : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(1);
Up10Hz : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(2);
Dn10Hz : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(3);
BandUp : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(6);
BandDn : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(7);
SplitTog : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($30)+CHR($A);
ClarTog : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($40)+CHR($A);
MtoV : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($50)+CHR($A);
VtoM : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($60)+CHR($A);
Swap : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($70)+CHR($A);
Aclr : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR($80)+CHR($A);
AckString : STRING[5] = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR($B);
(* Define general purpose string constants *)
Nul3String : STRING[3] = CHR(0)+CHR(0)+CHR(0);
Title : STRING[44] = 'CATY Transceiver Control Program';
ComErr : STRING[43] = ' Is RS-232 Interface turned on? ';
CTCSSErr : STRING[39] = ' CTCSS Module not installed ';
FreqErr : STRING[17] = ' Frequency error ';
CmdErr : STRING[17] = ' Command error ';
MemErr : STRING[17] = ' Memory error ';
TimerErr : STRING[40] = ' Restoring the normal Timer interrupt ';
TfileErr : STRING[26] = ' Cannot find UPDATE.DUM ';
(*═══════════════════════════════════════════════════════════════════════*)
TYPE
String5 = STRING[5]; (* Used for 767 Instructs, Echos *)
String86 = STRING[86]; (* To hold 767 Status Update stream *)
CircBuffer =
ARRAY[0..1023] OF Char; (* COM serial input buffers *)
(*═══════════════════════════════════════════════════════════════════════*)
VAR
Zero1 : BYTE; (* For initialization purposes *)
Clearit : BYTE; (* Dummy variable *)
TicCount : BYTE; (* Used to calc seconds for clock *)
RCommChar : CHAR; (* Character from the radio COM_ port *)
TCommChar : CHAR; (* Character from the TNC COM_ port *)
Rate : WORD; (* Baud rate variable *)
RComBase : WORD; (* Base address of radio COM port *)
TComBase : WORD; (* Base address of TNC COM port *)
RBuffer : CircBuffer; (* Incoming radio serial buffer *)
TBuffer : CircBuffer; (* Incoming TNC serial buffer *)
RLastRead,TLastRead, (* Index of the last char read *)
RLastSaved,TLastSaved, (* Index of the last char stored *)
Index : INTEGER; (* General purpose counter variable *)
Xbit,Ybit : INTEGER; (* Global storage for large char bits *)
BarPos : INTEGER; (* Global storage for bar selector *)
Page : INTEGER; (* Global storage for page selector *)
DataFileRec : INTEGER; (* Total # records in VFO datafile *)
RadioPort : INTEGER; (* Port to use for radio control *)
TermPort : INTEGER; (* Port to use for TNC control *)
RComVec : INTEGER; (* Vector # for radio (IRQ_) *)
TComVec : INTEGER; (* Vector # for TNC (IRQ_) *)
RIRQM : INTEGER; (* Mask to turn Radio IRQ_ ints on/off *)
TIRQM : INTEGER; (* Mask to turn TNC IRQ_ ints on/off *)
CharsInRBuf : INTEGER; (* No of chars in radio buffer *)
CharsInTBuf : INTEGER; (* No of chars in TNC buffer *)
OldRComVec : POINTER; (* Global storage for old radio COM vec *)
OldTComVec : POINTER; (* Global storage for old TNC COM vec *)
OldVector : POINTER; (* Holds old clock interrupt vector *)
Main : BOOLEAN; (* Main Menu is active flag *)
EchoValid : BOOLEAN; (* Good echo from FT-767 *)
MR,Cl,Fk : BOOLEAN; (* Mem Recall, Clar, Func key flags *)
Repeater : BOOLEAN; (* Repeater offset flag *)
DownFlag : BOOLEAN; (* Step Dn/Up flag *)
QuitFlag : BOOLEAN; (* Quit to DOS flag *)
Quit : BOOLEAN; (* Flag for exiting the program *)
SelFreq : REAL; (* Storage for selected frequency *)
BigFreq : STRING[10]; (* Global storage for freq string *)
Inst : String5; (* Global FT-767 Instruction code *)
Update : String86; (* Global FT-767 Update stream *)
UpdateFile : TEXT; (* Test file contains dummy Update *)
Y767MemDataFile : TEXT; (* Filename for memory data file *)
Y767VFODataFile : TEXT; (* Filename for VFO database file *)
Y767MemFileParams : STRING[76]; (* Length of MemFile record *)
Lifo : ARRAY[1..86] OF CHAR; (* Global LIFO Update stream *)
Zero2 : BYTE; (* For initialization purposes *)
Echo : ARRAY[1..5] OF CHAR; (* Global FT-767 Echo code *)
MemArray :
ARRAY[1..100] OF STRING[70]; (* For VFO datafile Memory array *)
(*════════════════════════════ End of Globals ═══════════════════════════*)